Field of the Invention
The present invention relates to software licensing and more particularly to features on demand (FoD) key authorization.
Description of the Related Art
FoD is a licensing procedure to enable both hardware and software features on certain servers and components. The components activated by FoD are already integrated into the server or adapter or other option, for example additional communications ports, disk storage protocols such as redundant array of independent disks (RAID) or network adapter enhancements such as Fibre Channel over Ethernet (FCoE) or Internet Small Computer System Interface (iSCSI). However, these components remain “locked” until an upgrade is activated and applied to the server through the acquisition and provision of an authorization code that is subsequently used to generate an activation key sufficient to “unlock” the desired feature or features. Consequently, FoD enables the customer to buy needed features on demand, for example access to additional hardware communications ports, while retaining the ability to enhance the system later with the needed additional ports, without requiring the customer to engage in hardware upgrades, which require costly, physical reconfiguration of the system. For those customers seeking access to the FoD components at the time of purchase of the server, the manufacturer can install an activation key on the server so that the FoD function is ready for use upon delivery of the server.
For field activation, the end user individually purchases the authorization code from the manufacturer and thereafter manually enters the authorization code into a user interface to acquire the activation keys entitled by the authorization code; the end user becomes the holder of the authorization code and the point of control for all authorizations of all components. Other end users requiring activation of features typically must request a key or this authorization code from an administrator who must account for used authorization credit and manage the distribution and utilization of the authorization code to acquire other activation keys for specific hardware elements to be unlocked. This cumbersome process results in delays and inefficiencies.
As another matter, once an authorization code has been used to create an activation key, there is no way at present to reassign the activation key to another device, or to reallocate credit for the authorization code to another user for use at a different time. Rather, because the activation key is bound to a specific instance of hardware, once the key has been generated, the key cannot be used to activate a different component on a different server. While a key library could be applied to overcome this deficiency, it remains impossible to prevent duplication of an activation key via simple copying. As such, a key library is impractical for managing the distribution of activation keys from the perspective of the manufacturer.
To account for the limitations of the authorization code distribution model, some software products make use of a license server approach. In the license server approach, a portion of software is centrally located in the customer environment and users obtain permission to use the portion of the software dynamically within limits established by the administrator of the license server. Limits may include a maximum capacity of simultaneous users, privilege-based user acquisition (in which users are only allowed to acquire a key if they have sufficient privilege), or a combination thereof.
The license server approach, however, is not applicable for the activation of hardware features as in FoD because hardware-based features typically must be activated during a system restart since they will often involve device reconfiguration that will require low-level reconfiguration before initializing an operating system. Also, the firmware operating environment in which this initialization occurs is not connected directly to a network and would require additional infrastructure to communicate with a license server at the time the activation permission is needed. Finally, there is no software agent that exists to relinquish the activation key once the key has been acquired and it would be inappropriate to forcibly restart a system with a key checked out in order to reallocate it to another system, even if the priority of the second system was greater than the priority of the key-holding, first system.